#define syncall() asm volatile();
#include "hthread.hpp"
void athread_init();
  int main(){
	int a[65536], b[65536], c[65536];
        
        hthread_init();
	hparallel([&]  {
		constexpr int BLK = 128;
		for (int ist = _MYID*BLK; ist < 65536; ist += 64*BLK) {
			int a_ldm[BLK];
			int b_ldm[BLK];
			int c_ldm[BLK];
			dma_getn(a+ist, a_ldm, BLK);
			dma_getn(b+ist, b_ldm, BLK);
			for (int i = 0; i < BLK; i ++) {
				c_ldm[i] = a_ldm[i] + b_ldm[i];
			}
			dma_putn(c+ist, c_ldm, BLK);
		}
     
	});

}
